/*
 * ==============================================================================
 Name		: MusicInterceptDocument.h
 Author		:  
 Copyrigh	: Your copyright notice
 Description	: Declares document class for application.
 * ==============================================================================
 */

#ifndef __MUSICINTERCEPTDOCUMENT_h__
#define __MUSICINTERCEPTDOCUMENT_h__

// INCLUDES
#include <akndoc.h>

// FORWARD DECLARATIONS
class CMusicInterceptAppUi;
class CEikApplication;

// CLASS DECLARATION

/**
 * CMusicInterceptDocument application class.
 * An instance of class CMusicInterceptDocument is the Document part of the
 * AVKON application framework for the MusicIntercept  application.
 */
class CMusicInterceptDocument : public CAknDocument
	{
public:
	// Constructors and destructor

	/**
	 * NewL.
	 * Two-phased constructor.
	 * Construct a CMusicInterceptDocument for the AVKON application aApp
	 * Using two phase construction, and return a pointer to the created object.
	 * @param aApp Application creating this document.
	 * @return A pointer to the created instance of CMusicInterceptDocument.
	 */
	static CMusicInterceptDocument* NewL(CEikApplication& aApp);

	/**
	 * NewLC.
	 * Two-phased constructor.
	 * Construct a CMusicInterceptDocument for the AVKON application aApp
	 * Using two phase construction, and return a pointer to the created object.
	 * @param aApp Application creating this document.
	 * @return A pointer to the created instance of CMusicInterceptDocument.
	 */
	static CMusicInterceptDocument* NewLC(CEikApplication& aApp);

	/**
	 * ~CMusicInterceptDocument
	 * Virtual Destructor.
	 */
	virtual ~CMusicInterceptDocument();

public:
	// from CAknDocument

	/**
	 * CreateAppUiL
	 * From CEikDocument, CreateAppUiL.
	 * Create a CMusicInterceptAppUi object and return a pointer to it.
	 * The object returned is owned by the Uikon framework.
	 * @return Pointer to created instance of AppUi.
	 */
	CEikAppUi* CreateAppUiL();

private:
	// Constructors

	/**
	 * ConstructL
	 * 2nd phase constructor.
	 */
	void ConstructL();

	/**
	 * CMusicInterceptDocument.
	 * C++ default constructor.
	 * @param aApp Reference to Application class object
	 */
	CMusicInterceptDocument(CEikApplication& aApp);

	};

#endif // __MUSICINTERCEPTDOCUMENT_h__

// End of File